# 练习：编写函数check_md5，传递一个文件的路径，用于计算一个文件的md5值
# 创建一个空的md5对象
# 二进制读取文件，每次读取4kb，更新md5
# 当文件读取结束，返回16进制数字
# check_md5('/usr/bin/ls')
import hashlib
def check_md5(file):
    m = hashlib.md5()  # 创建空的md5对象
    with open(file, mode='rb') as fr: # 以二进制读取打开文件
        # 循环读取文件，每次读取4kb
        while True:
            data = fr.read(4*1024)
            # 判断是否读取到了数据，如果没有读取说明到最后了，结束循环
            if not data:
                break
            # 否则读取到了数据，更新md5值
            m.update(data)
    # 最后返回16进制
    return m.hexdigest()
if __name__ == '__main__':
    result = check_md5('/root/geckodriver-v0.32.0-linux64.tar.gz')
    print(result)
    result = check_md5('/usr/bin/ls')
    print(result)
